In This Topic
Programming / Document Conversion / Using MRC compression during the conversion from TIFF to PDF

Using MRC compression during the conversion from TIFF to PDF

In This Topic

Mixed Raster Content (MRC) Compression is the method for compressing compound images. You can read more about this powerful tool on our blog. Below is a useful example of how to convert TIFF images to PDF documents benefiting from the enhanced MRC Compression mechanism.

Copy Code
'We assume that GdPicture has been correctly installed and unlocked.

Using oGdPictureImaging As GdPictureImaging = New GdPictureImaging()

    Dim imageId As Integer = oGdPictureImaging.CreateGdPictureImageFromFile("Image.tif")

    'Loading an image from a file.

    If oGdPictureImaging.GetStat() = GdPictureStatus.OK Then

        Using oGdPicturePDF As GdPicturePDF = New GdPicturePDF()

            Dim status As GdPictureStatus = oGdPicturePDF.NewPDF()

            If status = GdPictureStatus.OK Then

                If oGdPictureImaging.TiffIsMultiPage(imageId) = False Then

                    'Setting the resolution for the background layer of the resulting image.

                    oGdPicturePDF.SetMRCImageBackgroundResolution(100)

                    'Enabling smoothing.

                    oGdPicturePDF.SetMRCPreserveSmoothing(True)

                    'You can also set the compression values for images here, for example:

                    oGdPicturePDF.SetCompressionForBitonalImage(PdfCompression.PdfCompressionJBIG2)

                    oGdPicturePDF.SetCompressionForColorImage(PdfCompression.PdfCompressionJPEG2000)

                    'Using the negative value permits to specify better quality factor versus a compression rate.

                    oGdPicturePDF.SetJpeg2000Quality(-60)

                    'Distinguishing by the number of pages.

                    'One-page tiff image.

                    'Adding an image as a resource and drawing it onto a new page using MRC compression.

                    status = oGdPicturePDF.AddImageFromGdPictureImage(imageId, PdfAdvancedImageCompression.PdfAdvancedImageCompressionMRC)

                    If status = GdPictureStatus.OK Then

                        'Saving the new PDF to a file.

                        status = oGdPicturePDF.SaveToFile("output.pdf", True)

                    End If

                Else

                    'Multi-page tiff image.

                    Dim NumberOfPages As Integer = oGdPictureImaging.TiffGetPageCount(imageId)

                    'Selecting each page in the tiff file and subsequently adding it as a resource to a PDF document

                    'and drawing it on a new page using MRC compression.

                    For i As Integer = 1 To NumberOfPages

                        If (oGdPictureImaging.TiffSelectPage(imageId, i) <> GdPictureStatus.OK) OrElse

                            (oGdPicturePDF.AddImageFromGdPictureImage(imageId, PdfAdvancedImageCompression.PdfAdvancedImageCompressionMRC) <> GdPictureStatus.OK) Then

                            status = oGdPicturePDF.GetStat()

                            Exit For

                        End If

                    Next

                    'Checking whether an error occurred in adding any image to the PDF document.

                    If status = GdPictureStatus.OK Then

                        'Saving the new PDF to a file if no error occured.

                        status = oGdPicturePDF.SaveToFile("output.pdf", True)

                    End If

                End If

                oGdPicturePDF.CloseDocument()

            End If

            MessageBox.Show("Finished! Status: " + status.ToString(), "MRC Compression Example", MessageBoxButtons.OK, MessageBoxIcon.Information)

            'Clearing resources.

            oGdPictureImaging.ReleaseGdPictureImage(imageId)

        End Using

    Else

        MessageBox.Show("The image file can't be loaded. Status: " + oGdPictureImaging.GetStat().ToString(), "MRC Compression Example", MessageBoxButtons.OK, MessageBoxIcon.[Error])

    End If

End Using
Copy Code
//We assume that GdPicture has been correctly installed and unlocked.

using (GdPictureImaging oGdPictureImaging = new GdPictureImaging())

{

    //Loading an image from a file.

    int imageId = oGdPictureImaging.CreateGdPictureImageFromFile("Image.tif");

    if (oGdPictureImaging.GetStat() == GdPictureStatus.OK)

    {

        using (GdPicturePDF oGdPicturePDF = new GdPicturePDF())

        {

            GdPictureStatus status = oGdPicturePDF.NewPDF();

            if (status == GdPictureStatus.OK)

            {

                //Setting the resolution for the background layer of the resulting image.

                oGdPicturePDF.SetMRCImageBackgroundResolution(100);

                //Enabling smoothing.

                oGdPicturePDF.SetMRCPreserveSmoothing(true);

                //You can also set the compression values for images here, for example:

                oGdPicturePDF.SetCompressionForBitonalImage(PdfCompression.PdfCompressionJBIG2);

                oGdPicturePDF.SetCompressionForColorImage(PdfCompression.PdfCompressionJPEG2000);

                //Using the negative value permits to specify better quality factor versus a compression rate.

                oGdPicturePDF.SetJpeg2000Quality(-60);

                //Distinguishing by the number of pages.

                if (oGdPictureImaging.TiffIsMultiPage(imageId) == false) //One-page tiff image.

                {

                    //Adding an image as a resource and drawing it onto a new page using MRC compression.

                    status = oGdPicturePDF.AddImageFromGdPictureImage(imageId, PdfAdvancedImageCompression.PdfAdvancedImageCompressionMRC);

                    if (status == GdPictureStatus.OK)

                    {

                        //Saving the new PDF to a file.

                        status = oGdPicturePDF.SaveToFile("output.pdf", true);

                    }

                }

                else //Multi-page tiff image.

                {

                    int NumberOfPages = oGdPictureImaging.TiffGetPageCount(imageId);

                    //Loop through pages.

                    for (int i = 1; i <= NumberOfPages; i++)

                    {

                        //Selecting each page in the tiff file and subsequently adding it as a resource to a PDF document

                        //and drawing it on a new page using MRC compression.

                        if ((oGdPictureImaging.TiffSelectPage(imageId, i) != GdPictureStatus.OK) ||

                            (oGdPicturePDF.AddImageFromGdPictureImage(imageId, PdfAdvancedImageCompression.PdfAdvancedImageCompressionMRC) != GdPictureStatus.OK))

                        {

                            status = oGdPicturePDF.GetStat();

                            break;

                        }

                    }

                    //Checking whether an error occurred in adding any image to the PDF document.

                    if (status == GdPictureStatus.OK)

                    {

                        //Saving the new PDF to a file if no error occured.

                        status = oGdPicturePDF.SaveToFile("output.pdf", true);

                    }

                }

                oGdPicturePDF.CloseDocument();

            }

            MessageBox.Show("Finished! Status: " + status.ToString(), "MRC Compression Example", MessageBoxButtons.OK, MessageBoxIcon.Information);

            //Clearing resources.

            oGdPictureImaging.ReleaseGdPictureImage(imageId);

        }

    }

    else

    {

        MessageBox.Show("The image file can't be loaded. Status: " + oGdPictureImaging.GetStat().ToString(), "MRC Compression Example", MessageBoxButtons.OK, MessageBoxIcon.Error);

    }

}